package com.woniuxy.service;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.woniuxy.controller.dto.AccountDto;
import com.woniuxy.controller.dto.GetAllStudentDto;
import com.woniuxy.controller.form.RepairpeopleForm;
import com.woniuxy.controller.form.SetAccountForm;
import com.woniuxy.dao.model.Account;
import com.baomidou.mybatisplus.extension.service.IService;
import com.woniuxy.controller.form.AccountForm;
import com.woniuxy.dao.model.Account;
import com.baomidou.mybatisplus.extension.service.IService;
import io.swagger.models.auth.In;

import javax.mail.MessagingException;


/**
 * <p>
 *  服务类
 * </p>
 *
 * @author Keep it simple
 * @since 2022-06-28
 */
public interface AccountService extends IService<Account> {

    /**
     * 管理员添加维修工
     * @param repairpeopleForm
     * @return
     */
    String addrepairpeople(RepairpeopleForm repairpeopleForm);


    /**
     * 学生注册
     * @param accountForm
     * @return
     */
    Account register(AccountForm accountForm) throws MessagingException;

    /**
     * 账号激活
     * @param activeCode
     * @return
     */
    void activation(String activeCode);

    /**
     * 获取验证码（可用于短信验证登录   注册时判断手机号是否属于该用户）
     * @param phone
     * @return
     */
    String sendCode(String phone);


    /**
     * 修改信息
     * @param accountForm
     * @return
     */
    Account setAccount(SetAccountForm accountForm);

    /**
     * 修改密码
     * @param code password
     * @return
     */
    AccountDto setPassword(String code, String password);

    /**
     * 修改电话
     * @param code Phone
     * @return
     */
    AccountDto setPhone(String code, String phone);

    /**
     * 邮箱验证
     * @param activeCode
     * @return
     */
    AccountDto MailboxVerification2(String activeCode, String email);

    /**
     * 修改用户名
     * @param accountName
     * @return
     */
    AccountDto setAccountName(String accountName);

    /**
     * 获取全部学生
     * @param pageNum
     * @param pageSize
     * @return
     */
    Page<GetAllStudentDto> getAllStudent(Integer pageNum,Integer pageSize);
}
